/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package android.usuario;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import negocio.Usuario;
import negocio.dao.DAO;

/**
 *
 * @author davidcabrera
 */

@WebService
public class usuario {
    
    DAO d= new DAO();
    
    @WebMethod(operationName="createUsuario")
    public void createUsuario(@WebParam(name = "nombre") String nombre, @WebParam(name = "email") String email, @WebParam(name = "pass") String pass, @WebParam(name = "administrador") boolean administrador){
        Usuario u=new Usuario(nombre, email, pass, administrador);
        try {
            d.create(u, "Usuario");
        } catch (SQLException ex) {
            Logger.getLogger(usuario.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    @WebMethod(operationName="readUsuario")
    public Usuario readUsuario(@WebParam(name = "id") Integer id){
        Usuario u=null;
        try {
            u=(Usuario)d.read("Usuario", id);
        } catch (SQLException ex) {
            Logger.getLogger(usuario.class.getName()).log(Level.SEVERE, null, ex);
        }
        return u;
    }
    
    @WebMethod(operationName="updateUsuario")
    public void updateUsuario(@WebParam(name = "id") Integer id,@WebParam(name = "nombre") String nombre, @WebParam(name = "email") String email, @WebParam(name = "pass") String pass, @WebParam(name = "administrador") boolean administrador){
        Usuario u=this.readUsuario(id);
        u.setAdministrador(administrador);
        u.setEmail(email);
        u.setNombre(nombre);
        u.setPass(pass);
        try {
            d.update(u, "Usuario");
        } catch (SQLException ex) {
            Logger.getLogger(usuario.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    @WebMethod(operationName="deleteUsuario")
    public void deleteUsuario(@WebParam(name = "id") Integer id){
        try {
            d.delete("Usuario", id);
        } catch (SQLException ex) {
            Logger.getLogger(usuario.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    @WebMethod(operationName="listUsuario")
    public List<Usuario> listUsuario(){
        List<Usuario> lista= new ArrayList<Usuario>();
        List l=null;
        try {
            l=d.list("Usuario");
        } catch (SQLException ex) {
            Logger.getLogger(usuario.class.getName()).log(Level.SEVERE, null, ex);
        }
        
        for(Object u: l){
            lista.add((Usuario) u);
        }
        return lista;
    }
    
}
